filechoosernativeportal: Fall back if portal is too old
authorBastien Nocera <hadess@hadess.net>
Mon, 30 Mar 2020 12:18:11 +0000 (14:18 +0200)
committerBastien Nocera <hadess@hadess.net>
Mon, 30 Mar 2020 16:31:24 +0000 (18:31 +0200)
Add portal version checking as originally implemented for the GTK 3.x
branch.

See: 35fec1c6b298e0e294530e1ffc8615b5bd261531

gtk/gtkfilechoosernativeportal.c

index 2e3c49a887a7b78931b3540b73734f9a6f060bce..8d58dc253d1f1508d82edee78a3c006094b36a8b 100644 (file)
@@ -423,11 +423,19 @@ gtk_file_chooser_native_portal_show (GtkFileChooserNative *self,
 
   action = gtk_file_chooser_get_action (GTK_FILE_CHOOSER (self));
 
-  if (action == GTK_FILE_CHOOSER_ACTION_OPEN ||
-      action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
+  if (action == GTK_FILE_CHOOSER_ACTION_OPEN)
     method_name = "OpenFile";
   else if (action == GTK_FILE_CHOOSER_ACTION_SAVE)
     method_name = "SaveFile";
+  else if (action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
+    {
+      if (gtk_get_portal_interface_version (connection, "org.freedesktop.portal.FileChooser") < 3)
+        {
+          g_warning ("GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER is not supported by GtkFileChooserNativePortal because portal is too old");
+          return FALSE;
+        }
+      method_name = "OpenFile";
+    }
   else
     {
       g_warning ("GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER is not supported by GtkFileChooserNativePortal");